Language Constructs for Safe Parallel Programming on Multi-Cores

نویسنده

  • Johan Östlund
چکیده

ešects and checking are implemented in the compiler. emore speculative gradual ešect checking remains to be implemented. We have also not yet completely formalized or proven the soundness of the gradual ešect system. 5.5 Unlocking Ešects Using ešects for data race-free parallelism is conceptually very similar to using locks. Annotating a method with an ešect clause ešectively locks the data described by the ešects during the execution of that method, preventing any other conžicting method execution. ere are two major dišerences, however, one favoring ešects and one favoring locks. First, with an ešect clause, all the necessary “locks” can be acquired by a single atomic operation, whereas acquiring several actual locks is done in sequence (non-atomic), which is slower and also may introduce deadlocks. Secondly, ešects are held for an entire computation (a method typically), whereas locks can be released as soon as they are no longer needed; consequently locks may allow for more parallelism. To remedy this shortcomingwe introduce a yield command.A yield can be used inside a method body to inform the scheduler that an ešect reported in the method’s head will not be caused by the remainder of that method. is allows

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Concurrent Programming Constructs in Multi-Engine Prolog

We discuss the impact of the separation of logic engines (independent logic processing units) and multi-threading on the design of parallel programming constructs aware of the fundamental invariant of today’s typical computer architectures: the presence of a few independent cores. We advocate a combination of coroutining constructs with focus on expressiveness and a simplified, multithreading A...

متن کامل

Architecture Aware Assembly Like Parallel Constructs: Towards Power and Performance Efficient Heterogeneous Cores

Supercomputing clusters based on thousands of heterogeneous cores are gaining momentum in the multi-core era because of its potential to cater the needs of several classes of applications and also for its energy and compute efficiency. The Exa-scale computing demands the research thrust on programming models models to achieve exa-scale performance. This model should be capable of bridging the g...

متن کامل

Architecture aware parallel programming in Glasgow parallel Haskell (GPH)

General purpose computing architectures are evolving quickly to become manycore and hierarchical: i.e. a core can communicate more quickly locally than globally. To be effective on such architectures, programming models must be aware of the communications hierarchy. This thesis investigates a programming model that aims to share the responsibility of task placement, load balance, thread creatio...

متن کامل

Performance Analysis of GPU compared to Single-core and Multi-core CPU for Natural Language Applications

In Natural Language Processing (NLP) applications, the main time-consuming process is string matching due to the large size of lexicon. In string matching processes, data dependence is minimal and hence it is ideal for parallelization. A dedicated system with memory interleaving and parallel processing techniques for string matching can reduce this burden of host CPU, thereby making the system ...

متن کامل

A High-level Language Features and Parallelism Support Comparison

This paper provides a performance and programmability comparison of high-level parallel programming support in Haskell, F# and Scala. Developing several parallel versions, we employ skeletonbased, semi-explicit and explicit approaches to parallelism. We focus on advanced language features for separating computational and coordination aspects of the code and tuning performance. We also assess th...

متن کامل

Static Timing Analysis of Parallel Systems Using Abstract Execution

The Power Wall has stopped the past trend of increasing processor throughput by increasing the clock frequency and the instruction level parallelism. Therefore, the current trend in computer hardware design is to expose explicit parallelism to the software level. This is most often done using multiple processing cores situated on a single processor chip. The cores usually share some resources o...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2016